const db = wx.cloud.database();
const _ = db.command;
// pages/demo/demo.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
     
  },

  // limit用于限制最大查询个数，在小程序端最大个数为20，在云函数端最大个数为1000
  // orderby数据已什么样的顺序展现，asc表示顺序排列
  // desc表示倒叙排列
  // skip表示跳过多少条,用于分页
  // field用于过滤信息，将要提取的信息设为true，如果全部查询，会影响性能
  getData(){
    db.collection("news").limit(3)
    .field({
      title:true,
      author:true
    })
    .skip(0)
    .orderBy("time","asc")
    .get()
    .then(res=>{
      console.log(res);
    })
  },

  // 使用command来筛选数据，在where里面使用
  // _是最上面自己定义的command
  // eq等于，neq不等于，lt小于，lte小于等于，
  // gt大于，gte大于等于，
  // in表示大于等于且小于等于，范围区间1<x<100,
  // _.in([255,666])
  // nin是上一个方法的取反，表示不在那个区间的数据
  // _.and(_.gte(0),_.lt(100))用于连接多个判断条件
  // 表示筛选出大于等于0且小于100的数据
  // _.or表示或者_.or(_.eq(30),_.eq(16))
  // 当and后是对象的时候，可以添加多个不同的判断条件，针对多个字段进行操作
  // where(_.and([
  // like:_gt(0)
  // author:_.eq("李四")
  // ]))
  // 表示筛选出点赞数大于0且是李四的书
  // 或者使用or配合数组来使用
  // .where(_.or([
  // {like:_.lt(100)},
  // {author:_eq("李四")},
  // ]))
  // _.exists用来筛选指定字段是否存在
  // 如time:_exists(true)用来筛选存在time字段的项
  // mod为取余
  // size只能用来筛选数组类型，用来筛选数组中的元素的个数
  // tabs:_.size(3)
  // 表示筛选数组元素个数为3的数组的项
  // all用来筛选包含指定字符的数组
  // tabs:_all(["科技"]，["数码"])
  getData1(){
    db.collection("news")
    .where({
      // 筛选出点赞数为0的新闻
      like:_.eq(0)
    })
    .get()
    .then(res=>{
      console.log(res);
      this.setData({
        dataList:res.data
      })
    })
  },  


  // update使用doc来修改数据
  // update中的自增方法inc，（原子自增）
  // like:_.inc(1)表示点赞数增加1
  // _.remove()表示删除某条数据
  // _.set()表示更新某条数据，只会留下set里面填写的数据
  // update中的方法time:_.remove()表示删除某条字段的time这条数据
  // set方法可以修改数据，也可以添加一条原来没有的字段
  // 但是set是更新整条数据Style:_set({color:"yellow"})
  // 
  // 
  // 
  // 更新数组的操作
  // array:_push(["aaa"])向数组后面添加一个元素
  // array:_pop(["aaa"])删除数组末尾的元素
  // array:_unshift(["aaa","bbb"])向数组的头部插入X个元素
  // array:_shift(["aaa"])删除数组第一个元素
  // array:_pull(["aaa"])删除数组中的一个指定元素
  // 当要向数组中的指定位置插入多个元素的时候
  // 使用_.push({    push后面接一个对象
  //  each:["aaa","bbb"]这里each表达要插入的元素
  // position:1,表示从第一个元素后插入，若为空，则表示在末尾插入
  // })
  upDate(){
    db.collection("news")
    .doc("28ee4e3e603deaf0086ede973a430edb")
    .update({
      data:{
        like:_.inc(1)
      }
    }).then(res=>{
      console.log(res);
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})